#ifndef EXPRESSIONWRITER_H
#define EXPRESSIONWRITER_H

#include <QString>

#include "object.h"

class Ci;
class Cn;
class Container;
class Operator;

/**
 *	This class represents an expression writer.
 *
 *	@author Aleix Pol <aleixpol@gmail.com>
 */

class ExpressionWriter
{
	public:
		virtual ~ExpressionWriter();
		
		virtual QString accept(const Operator* var) = 0;
		virtual QString accept(const Ci* var) = 0;
		virtual QString accept(const Cn* var) = 0;
		virtual QString accept(const Container* var) = 0;
		
		virtual QString result() const=0;
};

#endif
